home *** CD-ROM | disk | FTP | other *** search
- unit uConnProgress;
-
- {
- *******************************************************************************
- * Descriptions: Main Unit for FMA
- * $Source: /cvsroot/fma/fma/uConnProgress.pas,v $
- * $Locker: $
- *
- * Todo:
- *
- * Change Log:
- * $Log: uConnProgress.pas,v $
- * Revision 1.6 2004/07/07 08:10:46 z_stoichev
- * Common Wizard Image usage
- *
- * Revision 1.5 2003/12/11 11:56:16 z_stoichev
- * Fixed multiple progress + uploads issue
- *
- * Revision 1.4 2003/11/28 09:38:07 z_stoichev
- * Merged with branch-release-1-1 (Fma 0.10.28c)
- *
- * Revision 1.3.2.3 2003/11/11 18:10:01 z_stoichev
- * Use common background.
- *
- * Revision 1.3.2.2 2003/10/31 14:51:58 z_stoichev
- * Change color scheme, add background image.
- *
- * Revision 1.3.2.1 2003/10/27 07:22:54 z_stoichev
- * Build 0.1.0 RC1 Initial Checkin.
- *
- * Revision 1.3 2003/10/22 13:15:04 z_stoichev
- * Make progress dialog optional.
- *
- *
- *
- }
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ComCtrls, ExtCtrls, SEProgress, jpeg;
-
- type
- { Do not create/destroy this form by yourself!!!
- Instead use two methods below:
- - GetProgressDialog
- - FreeProgressDialog }
- TfrmConnect = class(TForm)
- Label1: TLabel;
- Button1: TButton;
- SEProgress1: TSEProgress;
- Timer1: TTimer;
- Timer2: TTimer;
- Image1: TImage;
- procedure Button1Click(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- procedure Timer2Timer(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- procedure Initialize(MaxProgress: integer; Descr: string = '');
- procedure SetDescr(Descr: string);
- procedure ShowProgress(Delayed: boolean = False);
- procedure IncProgress(Delta: integer);
- end;
-
- var
- frmConnect: TfrmConnect;
-
- { Return the current progress form. Should not free! }
- function GetProgressDialog: TfrmConnect;
- { Release progress form usage. }
- procedure FreeProgressDialog;
-
- implementation
-
- uses Unit1;
-
- {$R *.dfm}
-
- const
- ProgressUsage: integer = 0;
-
- function GetProgressDialog: TfrmConnect;
- var
- i: integer;
- begin
- Result := nil;
- inc(ProgressUsage);
- for i := 0 to Screen.FormCount-1 do
- if Screen.Forms[i] is TfrmConnect then begin
- Result := Screen.Forms[i] as TfrmConnect;
- break;
- end;
- if Result = nil then begin
- frmConnect := TfrmConnect.Create(nil);
- Result := frmConnect;
- end;
- Result.SEProgress1.Position := 0;
- Result.SEProgress1.UnknownMax := True;
- end;
-
- procedure FreeProgressDialog;
- begin
- dec(ProgressUsage);
- if ProgressUsage = 0 then
- FreeAndNil(frmConnect);
- end;
-
- { TfrmConnect }
-
- procedure TfrmConnect.Initialize(MaxProgress: integer; Descr: string);
- begin
- if Descr <> '' then begin
- Label1.Caption := Descr;
- if Visible then Label1.Update;
- end;
- Timer1.Enabled := False;
- SEProgress1.Position := 0;
- SEProgress1.Max := MaxProgress;
- end;
-
- procedure TfrmConnect.Button1Click(Sender: TObject);
- begin
- Form1.ActionConnectionAbort.Execute;
- end;
-
- procedure TfrmConnect.Timer1Timer(Sender: TObject);
- begin
- SEProgress1.StepForward;
- end;
-
- procedure TfrmConnect.SetDescr(Descr: string);
- begin
- Label1.Caption := Descr;
- if Visible then Label1.Update;
- end;
-
- procedure TfrmConnect.IncProgress(Delta: integer);
- begin
- SEProgress1.Position := SEProgress1.Position + Delta;
- end;
-
- procedure TfrmConnect.ShowProgress(Delayed: boolean = False);
- begin
- Timer2.Enabled := Delayed and not Visible;
- if not Timer2.Enabled then Timer2Timer(nil);
- end;
-
- procedure TfrmConnect.Timer2Timer(Sender: TObject);
- begin
- Timer2.Enabled := False;
- Timer1.Enabled := SEProgress1.UnknownMax;
- Show;
- Update;
- end;
-
- procedure TfrmConnect.FormCreate(Sender: TObject);
- begin
- Image1.Picture.Assign(Form1.CommonBitmaps.Bitmap[1]);
- end;
-
- end.
-